13 research outputs found
Software Challenges For HL-LHC Data Analysis
The high energy physics community is discussing where investment is needed to
prepare software for the HL-LHC and its unprecedented challenges. The ROOT
project is one of the central software players in high energy physics since
decades. From its experience and expectations, the ROOT team has distilled a
comprehensive set of areas that should see research and development in the
context of data analysis software, for making best use of HL-LHC's physics
potential. This work shows what these areas could be, why the ROOT team
believes investing in them is needed, which gains are expected, and where
related work is ongoing. It can serve as an indication for future research
proposals and cooperations
ROOT - A C++ Framework for Petabyte Data Storage, Statistical Analysis and Visualization
ROOT is an object-oriented C++ framework conceived in the high-energy physics
(HEP) community, designed for storing and analyzing petabytes of data in an
efficient way. Any instance of a C++ class can be stored into a ROOT file in a
machine-independent compressed binary format. In ROOT the TTree object
container is optimized for statistical data analysis over very large data sets
by using vertical data storage techniques. These containers can span a large
number of files on local disks, the web, or a number of different shared file
systems. In order to analyze this data, the user can chose out of a wide set of
mathematical and statistical functions, including linear algebra classes,
numerical algorithms such as integration and minimization, and various methods
for performing regression analysis (fitting). In particular, ROOT offers
packages for complex data modeling and fitting, as well as multivariate
classification based on machine learning techniques. A central piece in these
analysis tools are the histogram classes which provide binning of one- and
multi-dimensional data. Results can be saved in high-quality graphical formats
like Postscript and PDF or in bitmap formats like JPG or GIF. The result can
also be stored into ROOT macros that allow a full recreation and rework of the
graphics. Users typically create their analysis macros step by step, making use
of the interactive C++ interpreter CINT, while running over small data samples.
Once the development is finished, they can run these macros at full compiled
speed over large data sets, using on-the-fly compilation, or by creating a
stand-alone batch program. Finally, if processing farms are available, the user
can reduce the execution time of intrinsically parallel tasks - e.g. data
mining in HEP - by using PROOF, which will take care of optimally distributing
the work over the available resources in a transparent way
ROOT for the HL-LHC: data format
This document discusses the state, roadmap, and risks of the foundational
components of ROOT with respect to the experiments at the HL-LHC (Run 4 and
beyond). As foundational components, the document considers in particular the
ROOT input/output (I/O) subsystem. The current HEP I/O is based on the TFile
container file format and the TTree binary event data format. The work going
into the new RNTuple event data format aims at superseding TTree, to make
RNTuple the production ROOT event data I/O that meets the requirements of Run 4
and beyond
Computing in High Energy and Nuclear Physics (CHEP) 2012
A JavaScript version of the ROOT I/O subsystem is being developed, in order to be able to browse (inspect) ROOT files in a platform independent way. This allows the content of ROOT files to be displayed in most web browsers, without having to install ROOT or any other software on the server or on the client. This gives a direct access to ROOT files from new (e.g. portable) devices in a light way. It will be possible to display simple graphical objects such as histograms and graphs (TH1, TH2, TH3, TProfile, TGraph, ...). The rendering will first be done with an external JavaScript graphic library, before investigating a way to produce graphics closer to what ROOT supports on other platforms (X11, Windows)
ROOT I/O in JavaScript
ROOT is used by almost all experiments throughout High Energy and Nuclear Physics to write, read and analyse data. As use of mobile devices (tablets, smart phones) is becoming more and more popular, offering a portable way of monitoring or inspecting ROOT files from any web browser, without having to install any application or library on the server side or on the client side is important. To achieve this, a JavaScript I/O library is being developed. The graphic part is done by using a third-party JavaScript visualization library
JavaScript ROOT
The redesign of JSRootIO code made it modular and usable in other projects. Many new interactive features are provided. JavaScript ROOT also implements user interface for THttpServer class
ROOT I/O in JavaScript
In order to be able to browse (inspect) ROOT files in a platform independent way, a JavaScript version of the ROOT I/O subsystem has been developed. This allows the content of ROOT files to be displayed in most available web browsers, without having to install ROOT or any other software on the server or on the client. This gives a direct access to ROOT files from any new device in a lightweight way. It is possible to display simple graphical objects such as histograms and graphs (TH1, TH2, TH3, TProfile, and TGraph). The rendering of 1D/2D histograms and graphs is done with an external JavaScript library (D3.js), and another library (Three.js) is used for 2D and 3D histograms. We will describe the techniques used to display the content of a ROOT file, with a rendering being now very close to the one provided by ROOT
New ROOT graphics language
In the context of ROOT7, the graphics system is completely redefined. Based on client server architecture and with the use of modern C++ and JavaScript, ROOT7 provides a new web based graphics system. The new concepts of ROOT7 can be displayed directly in the browsers using the new classes for opening a new web window, communicate with the server and exchange data between front and back end and JavaScript ROOT (JSROOT)